package com.syxx.oa.utils;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Random;
import java.util.Set;
import com.test.jbpm.Pager;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class StringUtils {
	public static JSONObject bean2Json(Object ob){
		if(ob==null || "".equals(ob)){
			return null;
		}
		return JSONObject.fromObject(ob);
	}
	
	public static JSONArray list2Json(List<?> list){
		if(list==null || list.size()==0){
			return null;
		}
		return JSONArray.fromObject(list);
	}
	
	public static String returnPageList(Pager<?> pager){
		StringBuffer sbJson = new StringBuffer();
		sbJson.append("{");
		sbJson.append("total:");
		sbJson.append(pager.getTotal());
		sbJson.append(", data:");
		
		List<?> lit = pager.getData();
		if(lit != null && lit.size()>0){
			sbJson.append(list2Json(lit));
		}else{
			sbJson.append("[]");
		}
		
		
		sbJson.append("}");
		return sbJson.toString();
	}
	
	public static String returnPageList(Pager<?> pager,JSONArray jsonList){
		StringBuffer sbJson = new StringBuffer();
		sbJson.append("{");
		sbJson.append("total:");
		sbJson.append(pager.getTotal());
		sbJson.append(", data:");
		
		if(jsonList != null && jsonList.size()>0){
			sbJson.append(jsonList);
		}else{
			sbJson.append("[]");
		}
		sbJson.append("}");
		return sbJson.toString();
	}
	
	public static boolean isBlank(String ...strs){
		if(strs == null){
			return true;
		}
		for (String str : strs) {
			if(str == null || "".equals(str) || "".equals(str.trim())){
				return true;
			}
		}
		return false;
	}

	public static final Integer ASC = 0;
	public static final Integer DESC = 1;
	public static final String ASCKEY = "asc";
	public static final String DESCKEY = "desc";
	public static final String BYKEY = " by ";
	public static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
	public static SimpleDateFormat formatHour = new SimpleDateFormat(
			"yyyy-MM-dd HH");
	public static SimpleDateFormat formatYearMonth = new SimpleDateFormat(
			"yyyy-MM");
	private static SimpleDateFormat sdf = new SimpleDateFormat(
			"yyyy-MM-dd HH:mm:ss");
	public static final String PURVIEWCODE = "purviewCode";

	private static Properties props = new Properties();// 属性
	@SuppressWarnings("rawtypes")
	private static Collection con = null; // 非法文字集合(从properties属性文件中读取出来)

	/**
	 * 
	 * <li>方法名：NextInt <li>@param min <li>@param max <li>@return <li>返回类型：int
	 * <li>说明：生成随机数 <li>创建人：蒲永超 <li>创建日期：2013-10-9 <li>修改人： <li>修改日期：
	 */
	public static int NextInt(final int min, final int max) {
		Random random = new Random();
		int tmp = Math.abs(random.nextInt());
		return tmp % (max - min + 1) + min;
	}

	/**
	 * 
	 * <li>方法名：createJspFileName <li>@param source <li>@return <li>返回类型：String
	 * <li>说明：根据传入的字符串创建用下划线分隔的全小写字母组成的文件名 <li>创建人：蒲永超 <li>创建日期：2008-10-14 <li>
	 * 修改人： <li>修改日期：
	 */
	public static String createJspFileName(String source) {

		StringBuffer sb = new StringBuffer();
		sb.append(Character.toLowerCase(source.charAt(0)));
		for (int i = 1; i < source.length(); ++i) {
			if (Character.isUpperCase(source.charAt(i))) {
				sb.append('_');
			}
			sb.append(Character.toLowerCase(source.charAt(i)));
		}

		return sb.toString();
	}

	/**
	 * 
	 * <li>方法名：writeFilter <li>@return <li>返回类型：String <li>说明：文字过滤器，对敏感文字进行过滤
	 * <li>创建人：蒲永超 <li>创建日期：2013-8-19 <li>修改人： <li>修改日期：
	 */
	@SuppressWarnings("rawtypes")
	public static boolean writeFilter(String string) {
		boolean bl = false;
		if (string != null && string.length() > 0) {
			Iterator it = con.iterator(); // 迭代器 可以 把collection中的值一条一条的读出来
			if (con != null) {
				while (it.hasNext()) {
					String value = (String) it.next(); // 取出该值
					bl = string.contains(value);// 如果包含敏感字符就返回true
					if (bl == true)
						break;
				}
			}
		}
		return bl;
	}

	/**
	 * <li>方法名：Long2Int <li>@param ldata <li>@return <li>返回类型：int <li>说明：数据类型转换
	 * <li>创建人：蒲永超 <li>创建日期：2008-10-21 <li>修改人： <li>修改日期：
	 */
	public static int Long2Int(long ldata) {
		return Integer.parseInt(String.valueOf(ldata));
	}

	/**
	 * <li>方法名：Int2Long <li>@param ldata <li>@return <li>返回类型：int <li>说明：数据类型转换
	 * <li>创建人：蒲永超 <li>创建日期：2008-11-10 <li>修改人： <li>修改日期：
	 */
	public static Long Int2Long(Integer intS) {
		return Long.parseLong(intS.toString());
	}

	/**
	 * <li>方法名：Str2Long <li>@param str <li>@return <li>返回类型：Long <li>说明：数据类型转换
	 * <li>创建人：蒲永超 <li>创建日期：2008-11-10 <li>修改人： <li>修改日期：
	 */
	public static Long Str2Long(String str) {
		return Long.parseLong(str.trim());
	}

	public static String getDatetime(Date date) {
		String retStr = "";
		if(date == null){
			return retStr;
		}
		try {
			retStr = sdf.format(date);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return retStr;
	}

	public static String getHour(Date date) {
		return formatHour.format(date);
	}

	/**
	 * <li>方法名：string2BigDecimal <li>@param str <li>@return <li>返回类型：BigDecimal
	 * <li>说明：数据类型转换 <li>创建人：蒲永超 <li>创建日期：2008-10-21 <li>修改人： <li>修改日期：
	 */
	public static BigDecimal String2BigDecimal(String str) {
		BigDecimal bigDecimal = null;
		if (str != null && str.trim().length() != 0) {
			bigDecimal = new BigDecimal(str);
		}
		return bigDecimal;
	}

	/**
	 * <li>方法名：DateParse <li>@param str <li>@return <li>@throws Exception <li>
	 * 返回类型：Date <li>说明：字符格式转换为日期类型 <li>创建人：蒲永超 <li>创建日期：2008-11-25 <li>修改人： <li>
	 * 修改日期：
	 */
	public static Date DateParse(String str) {
		try {
			return format.parse(str);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * <li>方法名：date2str <li>@param date <li>@param formatString <li>@return <li>
	 * 返回类型：String <li>说明：数据类型转换 <li>创建人：蒲永超 <li>创建日期：2008-10-21 <li>修改人： <li>
	 * 修改日期：
	 */
	public static String Date2Str(java.util.Date date, String formatString) {
		if (formatString != null && !formatString.equals("")) {
			format = new SimpleDateFormat(formatString);
		}
		return format.format(date);
	}

	/**
	 * <li>方法名：DateFormat <li>@param date <li>@return <li>返回类型：String <li>
	 * 说明：日期格式化为yyyy-MM-dd形式 <li>创建人：蒲永超 <li>创建日期：2008-11-25 <li>修改人： <li>修改日期：
	 */
	public static String DateFormat(Date date) {
		return format.format(date);
	}

	/**
	 * <li>方法名：Str2Date <li>@param str <li>@return <li>返回类型：Date <li>说明：数据类型转换
	 * <li>创建人：蒲永超 <li>创建日期：2008-10-21 <li>修改人： <li>修改日期：
	 */
	public static Date Str2Date(String str) {
		Date date = null;
		try {
			if (str != null && !str.trim().equals("") && isDate(str))
				date = format.parse(str);
		} catch (Exception e) {
		}
		return date;
	}

	public static Date Str2Date(String str, String formatString) {
		if (isBlank(formatString)) {
			formatString = "yyyy-MM-dd";
		}
		SimpleDateFormat format = new SimpleDateFormat(
				formatString.split(";")[0]);
		System.out.println(formatString.split(";")[0]);
		Date date = null;
		try {
			if (!isBlank(str))
				date = format.parse(str);
		} catch (Exception e) {
			e.printStackTrace();
			return new Date();
		}
		return date;
	}

	/**
	 * <li>方法名：isDate <li>@param str <li>@return <li>返回类型：boolean <li>
	 * 说明：判断是否是日期字符串 <li>创建人：蒲永超 <li>创建日期：2008-10-21 <li>修改人： <li>修改日期：
	 */
	public static boolean isDate(String str) {
		try {
			if (!isBlank(str))
				format.parse(str);
		} catch (Exception e) {
			return false;
		}
		return true;
	}

	/**
	 * <li>方法名：Str2Int <li>@param str <li>@return <li>返回类型：int <li>说明：数据类型转换 <li>
	 * 创建人：蒲永超 <li>创建日期：2008-10-21 <li>修改人： <li>修改日期：
	 */
	public static int Str2Int(String str) {
		if (str == null || "".equals(str))
			return 0;
		return Integer.parseInt(str);
	}

	/**
	 * <li>方法名：StrFill <li>@param fillStr 用来补位的字符 <li>@param oldStr 需要补位的字符串 <li>@param
	 * length 补位后的总长度 <li>@param place 补位位置:left or right <li>@return <li>
	 * 返回类型：String <li>说明：用指定的字符为需要补位的字符串补位 <li>创建人：蒲永超 <li>创建日期：2008-10-21 <li>
	 * 修改人： <li>修改日期：
	 */
	public static String StrFill(String fillStr, String oldStr, int length,
			String place) {
		StringBuffer sb = new StringBuffer();
		if ("right".equals(place)) {
			sb.append(oldStr);
		}
		for (int i = 0; i < (length - oldStr.length()); i++) {
			sb.append(fillStr);
		}
		if ("left".equals(place)) {
			sb.append(oldStr);
		}
		return sb.toString();
	}

	/**
	 * <li>方法名：isBlank <li>@param str <li>@return <li>返回类型：boolean <li>
	 * 说明：判断字符串是否为空,为空就返回true,不为空返回false <li>创建人：蒲永超 <li>创建日期：2008-11-26 <li>
	 * 修改人： <li>修改日期：
	 */
	public static boolean isBlank(String str) {
		if (str == null) {
			return true;
		}
		if (str.trim().length() < 1) {
			return true;
		}

		if (str.trim().equals("")) {
			return true;
		}

		if (str.trim().toLowerCase().equals("null")) {
			return true;
		}
		return false;
	}

//	public static String fixBitCode(Serializable souce, Integer bits) {
//		return StringUtils.leftPad(souce.toString(), bits, '0');
//	}

	public static String orderStringClearOrderBy(String s1) {
		if (s1 == null || s1.length() <= 0) {
			return "";
		}

		int i = s1.toLowerCase().indexOf(BYKEY);

		String s = s1.substring(i + 4, s1.length());
		return s;
	}

	/**
	 * 
	 * <li>方法名：getURL <li>@param entityName <li>@param menuId <li>@return <li>
	 * 返回类型：String <li>说明：根据指定的实体类名和方法名组合出url <li>创建人：蒲永超 <li>创建日期：2009-9-15 <li>
	 * 修改人： <li>修改日期：
	 */
	public static String getURL(String entityName, String methodName,
			String paramers, String url) {
		StringBuilder sb = new StringBuilder();
		if (!isBlank(entityName)) {
			sb.append(entityName).append("!").append(methodName);
		} else if (!isBlank(url)) {
			sb.append(url);
		}

		if (!isBlank(paramers)) {
			sb.append("?").append(paramers);
		}
		return sb.toString();
	}

	public static String toUTF8(String str) {
		if (str == null) {
			return null;
		}
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < str.length(); i++) {
			char c = str.charAt(i);
			if (c >= 0 && c <= 256) {
				sb.append(c);
			} else {
				try {
					byte[] b = Character.toString(c).getBytes("UTF-8");
					for (int j = 0; j < b.length; j++) {
						int k = b[j];
						if (k < 0) {
							k = k + 256;
						}
						sb.append("%" + Integer.toHexString(k).toUpperCase());
					}
				} catch (Exception e) {
					System.out.println(e);
				}
			}
		}

		return sb.toString();
	}

	public static String decodeUTF8(String s) {
		if (s == null)
			return "";

		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < s.length(); i++) {
			char c = s.charAt(i);
			switch (c) {
			case '+':
				sb.append(' ');
				break;
			case '%':
				try {
					// 将16进制的数转化为十进制
					sb.append((char) Integer.parseInt(
							s.substring(i + 1, i + 3), 16));
				} catch (NumberFormatException e) {
					throw new IllegalArgumentException();
				}
				i += 2;
				break;
			default:
				sb.append(c);
				break;
			}
		}

		String result = sb.toString();
		// 将UTF-8转换为GBK java+%E7%BC%96%E7%A8%8B
		// byte[] inputBytes = result.getBytes("8859_1"); //UTF8
		// return new String(inputBytes,"GB2312");
		try {
			result = new String(result.getBytes("8859_1"), "UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return result;
	}

	public static String addBrackets(String value) {
		return new StringBuilder().append("[").append(value).append("]")
				.toString();
	}

	/**
	 * 
	 * <li>方法名：toHqlInConditionWithName <li>@param alias <li>@param puriveCode
	 * <li>@param propertName <li>@return <li>返回类型：String <li>说明：组织in条件sql串 <li>
	 * 创建人：蒲永超 <li>创建日期：2010-2-2 <li>修改人： <li>修改日期：
	 */
	public static String toHqlInConditionWithName(String alias,
			String puriveCode, String propertName) {
		String[] conditions = puriveCode.split(",");
		if (isBlank(alias)) {
			alias = "";
		} else {
			alias += ".";
		}
		StringBuilder sb = new StringBuilder();
		sb.append(alias).append(propertName).append(" in ( ");
		for (String s : conditions) {
			if (s != null) {
				sb.append("'").append(s).append("',");
			}
		}
		sb.deleteCharAt(sb.length() - 1);
		sb.append(" )");
		return sb.toString();
	}

	/**
	 * 
	 * <li>方法名：toHqlOrConditionWithName <li>@param alias <li>@param puriveCode
	 * <li>@param propertName <li>@return <li>返回类型：String <li>说明：组织or条件sql串 <li>
	 * 创建人：蒲永超 <li>创建日期：2010-2-2 <li>修改人： <li>修改日期：
	 */
	public static String toHqlOrConditionWithName(String alias,
			String puriveCode, String propertName) {
		boolean hasElement = false;
		if (isBlank(alias)) {
			alias = "";
		} else {
			alias += ".";
		}
		String[] conditions = puriveCode.split(",");
		StringBuilder sb = new StringBuilder();
		sb.append(" ( ");
		for (String s : conditions) {
			if (!isBlank(s)) {
				hasElement = true;
				sb.append(alias).append(propertName).append("= '").append(s)
						.append("' or ");
			}
		}
		sb.delete(sb.length() - 3, sb.length() - 1);
		sb.append(" ) ");

		if (hasElement) {
			return sb.toString();
		} else {
			return null;
		}
	}

	/**
	 * 
	 * <li>方法名：toHqlOrConditionWithName2 <li>@param alias <li>@param puriveCode
	 * <li>@param propertName <li>@return <li>返回类型：String <li>说明：组装sql条件 in查询
	 * <li>创建人：蒲永超 <li>创建日期：2013-9-4 <li>修改人： <li>修改日期：
	 */
	public static String toHqlOrConditionWithName2(String alias,
			String puriveCode, String propertName) {
		boolean hasElement = false;
		if (isBlank(alias)) {
			alias = "";
		} else {
			alias += ".";
		}
		String[] conditions = puriveCode.split(",");
		StringBuilder sb = new StringBuilder();
		sb.append(alias).append(propertName).append(" in( '");
		for (String s : conditions) {
			if (!isBlank(s)) {
				hasElement = true;
				sb.append(s).append("','");
			}
		}
		sb.delete(sb.length() - 3, sb.length() - 1);
		sb.append(" ) ");

		if (hasElement) {
			return sb.toString();
		} else {
			return null;
		}
	}

	/**
	 * 
	 * <li>方法名：toHqlOrConditionWithName <li>@param alias <li>@param propertName
	 * <li>@param puriveCode <li>@return <li>返回类型：String <li>说明： <li>创建人：蒲永超 <li>
	 * 创建日期：2010-2-2 <li>修改人： <li>修改日期：
	 */
	public static String toHqlOrConditionWithName(String alias,
			String propertName, String... puriveCode) {
		boolean hasElement = false;
		if (isBlank(alias)) {
			alias = "";
		} else {
			alias += ".";
		}
		StringBuilder sb = new StringBuilder();
		sb.append(" ( ");
		for (String s : puriveCode) {
			if (!isBlank(s)) {
				hasElement = true;
				sb.append(alias).append(propertName).append("= '").append(s)
						.append("' or ");
			}
		}
		sb.delete(sb.length() - 3, sb.length() - 1);
		sb.append(" ) ");

		if (hasElement) {
			return sb.toString();
		} else {
			return null;
		}
	}

	/**
	 * 
	 * <li>方法名：toHqlInCondition <li>@param alias <li>@param puriveCode <li>@return
	 * <li>返回类型：String <li>说明： <li>创建人：蒲永超 <li>创建日期：2010-2-2 <li>修改人： <li>修改日期：
	 */
	public static String toHqlInCondition(String alias, String puriveCode) {

		return toHqlInConditionWithName(alias, puriveCode, PURVIEWCODE);
	}

	/**
	 * 
	 * <li>方法名：toHqlOrCondition <li>@param alias <li>@param puriveCode <li>@return
	 * <li>返回类型：String <li>说明： <li>创建人：蒲永超 <li>创建日期：2010-8-16 <li>修改人： <li>修改日期：
	 */
	public static String toHqlOrCondition(String alias, String puriveCode) {

		return toHqlOrConditionWithName(alias, puriveCode, PURVIEWCODE);
	}

	/**
	 * 
	 * <li>方法名：likePurviewCode <li>@param alias <li>@param puriveCode <li>@return
	 * <li>返回类型：String <li>说明： <li>创建人：蒲永超 <li>创建日期：2010-10-14 <li>修改人： <li>
	 * 修改日期：
	 */
	public static String likePurviewCode(String alias, String puriveCode) {
		if (puriveCode == null) {
			return "";
		}
		if (isBlank(alias)) {
			alias = "";
		} else {
			alias += ".";
		}

		StringBuilder sb = new StringBuilder();
		sb.append(" ( ");
		sb.append(alias).append(PURVIEWCODE).append(" like '")
				.append(puriveCode).append("%'");
		sb.append(" ) ");

		return sb.toString();
	}

	public static String likePurviewCode(String alias, String puriveCode,
			String columnName) {
		if (puriveCode == null) {
			return "";
		}
		if (isBlank(alias)) {
			alias = "";
		} else {
			alias += ".";
		}

		StringBuilder sb = new StringBuilder();
		sb.append(" ( ");
		sb.append(alias).append(columnName).append(" like '")
				.append(puriveCode).append("%'");
		sb.append(" ) ");

		return sb.toString();
	}

	public static String joinStrings(String... strs) {
		if (strs != null) {
			StringBuilder sb = new StringBuilder();
			for (String str : strs) {
				sb.append(str);
			}
			return sb.toString();
		} else {
			return "";
		}
	}

	public static String splitCasCode(String casCode) {
		String result = "";
		if (isBlank(casCode)) {
			return result;
		}
		for (int i = 0; i < casCode.length() / 3; ++i) {
			result += "," + casCode.substring(0, (i + 1) * 3);
		}

		return result;
	}

	public static String splitTreeCasCode(String alias, String property,
			String casCode) {
		StringBuilder result = new StringBuilder(" (");
		if (isBlank(casCode)) {
			return "";
		}
		for (int i = 0; i < casCode.length() / 3; ++i) {
			if (i > 0) {
				result.append(" or ");
			}
			result.append(alias).append(".").append(property).append(" = '")
					.append(casCode.substring(0, (i + 1) * 3)).append("' ");
		}

		result.append(") ");

		return result.toString();
	}

	public static void main(String[] params) {
		System.out.println(isAmount("10."));
	}

	/**
	 * 将对象中的属性拼接成sql所需的格式，仅支持类型为String的类型
	 * 
	 * @param objs
	 * @param fieldName
	 *            属性名
	 * @return 拼接后的字符串
	 * @throws Exception
	 
	public static String spliceField(Collection<?> objs, String fieldName)
			throws Exception {
		if (!BeanUtils.isNotEmpty(objs) || !BeanUtils.isNotEmpty(fieldName)) {
			return null;
		}
		Set<String> set = new HashSet<String>();
		for (Object obj : objs) {
			Class<?> clazz = obj.getClass();
			Field field = clazz.getDeclaredField(fieldName);
			field.setAccessible(true);
			String fieldValue = (String) field.get(obj);
			if (BeanUtils.isNotEmpty(fieldValue)) {
				set.add(fieldValue);
			}
		}
		return arrayToString(set);
	}*/

	public static String arrayToString(Collection<String> colls) {
		return colls.toString().replace(",", "','").replace("[", "('")
				.replace("]", "')").replace(" ", "");
	}

	/**
	 * 
	 * <li>方法名：getYearMonth <li>@return <li>返回类型：String <li>说明：获取年月号码 <li>
	 * 创建人：蒲永超 <li>创建日期：2012-3-30 <li>修改人： <li>修改日期：
	 */
	public static String getYearMonth() {
		Date d = new Date();
		return formatYearMonth.format(d);
	}

	/**
	 * <li>方法名：addDate <li>@param date <li>@param daySize <li>@return <li>
	 * 返回类型：String <li>说明：日期加减 <li>创建人：蒲永超 <li>创建日期：Jun 28, 2012 <li>修改人： <li>
	 * 修改日期：
	 */
	public static String addDate(Date date, int daySize) {
		Calendar cal = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历。
		cal.setTime(date);
		cal.add(Calendar.DAY_OF_MONTH, daySize);// daySize正数，就向后加时间，负数向前取时间
		// 通过格式化输出日期
		java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(
				"yyyy-MM-dd");
		return format.format(cal.getTime());
	}

	/**
	 * <li>方法名：generateRandom <li>@param length 随机数长度 <li>@return <li>
	 * 返回类型：String <li>说明：生成随机数 <li>创建人：蒲永超 <li>创建日期：Oct 10, 2012 <li>修改人： <li>
	 * 修改日期：
	 */
	public static String generateRandom(int length) {
		Random random = new Random();
		String x = Long.toString(Math.abs(random.nextLong()));
		String RandomNumber = x.substring(0, length);
		return RandomNumber;
	}

	/**
	 * 
	 * <li>方法名：getStrAsJSon <li>@param status <li>@param msg <li>@param
	 * resultJson <li>@return <li>返回类型：String <li>说明：填充参数，返回json字符串 <li>创建人：李伟
	 * <li>创建日期：2013-8-6 <li>修改人： <li>修改日期：
	 */
	public static String getStrAsJSon(int status, String msg, String resultJson) {
		// {status:1,msg:'',result:{}}
		StringBuffer sbuffer = new StringBuffer();
		sbuffer.append("{");
		sbuffer.append("\"status\":" + status);

		if (!(msg == null || "".equals(msg))) {
			sbuffer.append(",\"msg\":\"" + msg + "\"");
		}

		if (!(resultJson == null || "".equals(resultJson))) {
			sbuffer.append(",\"result\":" + resultJson);
		}

		sbuffer.append("}");

		return sbuffer.toString();
	}

	/**
	 * 
	 * <li>方法名：getStrAsJSon <li>@param status <li>@param msg <li>@param
	 * resultJson <li>@return <li>返回类型：String <li>说明：填充参数，返回json字符串 <li>创建人：李伟
	 * <li>创建日期：2013-8-6 <li>修改人： <li>修改日期：
	 */
	public static String getStrAsJSon2(int status, String msg, String resultJson) {
		// {status:1,msg:'',result:{}}
		StringBuffer sbuffer = new StringBuffer();
		sbuffer.append("{");
		sbuffer.append("\"status\":" + status);

		if (!(msg == null || "".equals(msg))) {
			sbuffer.append(",\"msg\":\"" + msg + "\"");
		}

		if (!(resultJson == null || "".equals(resultJson))) {
			sbuffer.append(",\"result\":" + resultJson);
		}

		sbuffer.append("}");

		return sbuffer.toString();
	}

	/**
	 * 
	 * <li>方法名：getStrAsJSon <li>@param status <li>@param msg <li>@param
	 * resultJson <li>@return <li>返回类型：String <li>说明：填充参数，返回json字符串 <li>创建人：李伟
	 * <li>创建日期：2013-8-6 <li>修改人： <li>修改日期：
	 */
	public static String getStrAsJSon3(int status, String msg, String resultJson) {
		// {status:1,msg:'',result:{}}
		StringBuffer sbuffer = new StringBuffer();
		sbuffer.append("{");
		sbuffer.append("\"status\":" + status);

		if (!(msg == null || "".equals(msg))) {
			sbuffer.append(",\"msg\":\"" + msg + "\"");
		}

		if (!(resultJson == null || "".equals(resultJson))) {// 有[]或{}的被视为对象
			if ((resultJson.startsWith("[") && resultJson.endsWith("]"))
					|| (resultJson.startsWith("{") && resultJson.endsWith("}"))) {
				sbuffer.append(",\"result\":" + resultJson + "");
			} else {// 普通字符串
				sbuffer.append(",\"result\":\"" + resultJson + "\"");
			}
		}

		sbuffer.append("}");

		return sbuffer.toString();
	}

	public static boolean isNull(String str) {
		return str == null ? true : false;
	}

	public static boolean isEmpty(String str) {
		String s = str.trim();
		return "".equals(s) ? true : false;
	}

	public static boolean isNullOrEmpty(String str) {
		return isNull(str) || isEmpty(str);
	}

	public static boolean isUndefinedStr(String str) {
		return "undefined".equals(str) ? true : false;
	}

	public static boolean isNotExist(String[] array, String equalsValue) {
		if (array == null || array.length == 0) {
			return true;
		}
		for (String string : array) {
			if (StringUtils.isNullOrEmpty(string)) {
				continue;
			}
			if (string.equals(equalsValue)) {
				return false;
			}
		}
		return true;
	}

	public static boolean isAmount(String amount) {
		try {
			Double.parseDouble(amount);
			int index = amount.indexOf(".");
			if (index > -1) {
				amount = amount.substring(index + 1);// .trim();
				if (amount.length() > 2) {
					return false;
				}
			}
			return true;
		} catch (Exception e) {
			return false;
		}
	}

	public static String toString(Object obj) {
		if (obj == null) {
			return null;
		}
		return obj + "";
	}



}
